/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.talend.dataquality.indicators.provider;

import java.util.ArrayList;
import java.util.Collection;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.edit.provider.ChangeNotifier;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IChangeNotifier;
import org.eclipse.emf.edit.provider.IDisposable;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.INotifyChangedListener;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.talend.dataquality.indicators.util.IndicatorsAdapterFactory;

/**
 * This is the factory that is used to provide the interfaces needed to support Viewers.
 * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
 * The adapters also support Eclipse property sheets.
 * Note that most of the adapters are shared among multiple instances.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public class IndicatorsItemProviderAdapterFactory extends IndicatorsAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
    /**
     * This keeps track of the root adapter factory that delegates to this adapter factory.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected ComposedAdapterFactory parentAdapterFactory;

    /**
     * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected IChangeNotifier changeNotifier = new ChangeNotifier();

    /**
     * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected Collection<Object> supportedTypes = new ArrayList<Object>();

    /**
     * This constructs an instance.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public IndicatorsItemProviderAdapterFactory() {
        supportedTypes.add(IEditingDomainItemProvider.class);
        supportedTypes.add(IStructuredItemContentProvider.class);
        supportedTypes.add(ITreeItemContentProvider.class);
        supportedTypes.add(IItemLabelProvider.class);
        supportedTypes.add(IItemPropertySource.class);
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.Indicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected IndicatorItemProvider indicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.Indicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createIndicatorAdapter() {
        if (indicatorItemProvider == null) {
            indicatorItemProvider = new IndicatorItemProvider(this);
        }

        return indicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.RowCountIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected RowCountIndicatorItemProvider rowCountIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.RowCountIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createRowCountIndicatorAdapter() {
        if (rowCountIndicatorItemProvider == null) {
            rowCountIndicatorItemProvider = new RowCountIndicatorItemProvider(this);
        }

        return rowCountIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.MeanIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected MeanIndicatorItemProvider meanIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.MeanIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createMeanIndicatorAdapter() {
        if (meanIndicatorItemProvider == null) {
            meanIndicatorItemProvider = new MeanIndicatorItemProvider(this);
        }

        return meanIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.SumIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected SumIndicatorItemProvider sumIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.SumIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createSumIndicatorAdapter() {
        if (sumIndicatorItemProvider == null) {
            sumIndicatorItemProvider = new SumIndicatorItemProvider(this);
        }

        return sumIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.CompositeIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected CompositeIndicatorItemProvider compositeIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.CompositeIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createCompositeIndicatorAdapter() {
        if (compositeIndicatorItemProvider == null) {
            compositeIndicatorItemProvider = new CompositeIndicatorItemProvider(this);
        }

        return compositeIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.RangeIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected RangeIndicatorItemProvider rangeIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.RangeIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createRangeIndicatorAdapter() {
        if (rangeIndicatorItemProvider == null) {
            rangeIndicatorItemProvider = new RangeIndicatorItemProvider(this);
        }

        return rangeIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.BoxIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected BoxIndicatorItemProvider boxIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.BoxIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createBoxIndicatorAdapter() {
        if (boxIndicatorItemProvider == null) {
            boxIndicatorItemProvider = new BoxIndicatorItemProvider(this);
        }

        return boxIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.FrequencyIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected FrequencyIndicatorItemProvider frequencyIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.FrequencyIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createFrequencyIndicatorAdapter() {
        if (frequencyIndicatorItemProvider == null) {
            frequencyIndicatorItemProvider = new FrequencyIndicatorItemProvider(this);
        }

        return frequencyIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.BlankCountIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected BlankCountIndicatorItemProvider blankCountIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.BlankCountIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createBlankCountIndicatorAdapter() {
        if (blankCountIndicatorItemProvider == null) {
            blankCountIndicatorItemProvider = new BlankCountIndicatorItemProvider(this);
        }

        return blankCountIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.IndicatorParameters} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected IndicatorParametersItemProvider indicatorParametersItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.IndicatorParameters}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createIndicatorParametersAdapter() {
        if (indicatorParametersItemProvider == null) {
            indicatorParametersItemProvider = new IndicatorParametersItemProvider(this);
        }

        return indicatorParametersItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.MedianIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected MedianIndicatorItemProvider medianIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.MedianIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createMedianIndicatorAdapter() {
        if (medianIndicatorItemProvider == null) {
            medianIndicatorItemProvider = new MedianIndicatorItemProvider(this);
        }

        return medianIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.ValueIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected ValueIndicatorItemProvider valueIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.ValueIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createValueIndicatorAdapter() {
        if (valueIndicatorItemProvider == null) {
            valueIndicatorItemProvider = new ValueIndicatorItemProvider(this);
        }

        return valueIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.MinValueIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected MinValueIndicatorItemProvider minValueIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.MinValueIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createMinValueIndicatorAdapter() {
        if (minValueIndicatorItemProvider == null) {
            minValueIndicatorItemProvider = new MinValueIndicatorItemProvider(this);
        }

        return minValueIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.MaxValueIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected MaxValueIndicatorItemProvider maxValueIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.MaxValueIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createMaxValueIndicatorAdapter() {
        if (maxValueIndicatorItemProvider == null) {
            maxValueIndicatorItemProvider = new MaxValueIndicatorItemProvider(this);
        }

        return maxValueIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.ModeIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected ModeIndicatorItemProvider modeIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.ModeIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createModeIndicatorAdapter() {
        if (modeIndicatorItemProvider == null) {
            modeIndicatorItemProvider = new ModeIndicatorItemProvider(this);
        }

        return modeIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.NullCountIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected NullCountIndicatorItemProvider nullCountIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.NullCountIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createNullCountIndicatorAdapter() {
        if (nullCountIndicatorItemProvider == null) {
            nullCountIndicatorItemProvider = new NullCountIndicatorItemProvider(this);
        }

        return nullCountIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.DistinctCountIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected DistinctCountIndicatorItemProvider distinctCountIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.DistinctCountIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createDistinctCountIndicatorAdapter() {
        if (distinctCountIndicatorItemProvider == null) {
            distinctCountIndicatorItemProvider = new DistinctCountIndicatorItemProvider(this);
        }

        return distinctCountIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.UniqueCountIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected UniqueCountIndicatorItemProvider uniqueCountIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.UniqueCountIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createUniqueCountIndicatorAdapter() {
        if (uniqueCountIndicatorItemProvider == null) {
            uniqueCountIndicatorItemProvider = new UniqueCountIndicatorItemProvider(this);
        }

        return uniqueCountIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.DuplicateCountIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected DuplicateCountIndicatorItemProvider duplicateCountIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.DuplicateCountIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createDuplicateCountIndicatorAdapter() {
        if (duplicateCountIndicatorItemProvider == null) {
            duplicateCountIndicatorItemProvider = new DuplicateCountIndicatorItemProvider(this);
        }

        return duplicateCountIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.IQRIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected IQRIndicatorItemProvider iqrIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.IQRIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createIQRIndicatorAdapter() {
        if (iqrIndicatorItemProvider == null) {
            iqrIndicatorItemProvider = new IQRIndicatorItemProvider(this);
        }

        return iqrIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.TextIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected TextIndicatorItemProvider textIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.TextIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createTextIndicatorAdapter() {
        if (textIndicatorItemProvider == null) {
            textIndicatorItemProvider = new TextIndicatorItemProvider(this);
        }

        return textIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.MinLengthIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected MinLengthIndicatorItemProvider minLengthIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.MinLengthIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createMinLengthIndicatorAdapter() {
        if (minLengthIndicatorItemProvider == null) {
            minLengthIndicatorItemProvider = new MinLengthIndicatorItemProvider(this);
        }

        return minLengthIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.MinLengthWithNullIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected MinLengthWithNullIndicatorItemProvider minLengthWithNullIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.MinLengthWithNullIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createMinLengthWithNullIndicatorAdapter() {
        if (minLengthWithNullIndicatorItemProvider == null) {
            minLengthWithNullIndicatorItemProvider = new MinLengthWithNullIndicatorItemProvider(this);
        }

        return minLengthWithNullIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.MinLengthWithBlankIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected MinLengthWithBlankIndicatorItemProvider minLengthWithBlankIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.MinLengthWithBlankIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createMinLengthWithBlankIndicatorAdapter() {
        if (minLengthWithBlankIndicatorItemProvider == null) {
            minLengthWithBlankIndicatorItemProvider = new MinLengthWithBlankIndicatorItemProvider(this);
        }

        return minLengthWithBlankIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.MinLengthWithBlankNullIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected MinLengthWithBlankNullIndicatorItemProvider minLengthWithBlankNullIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.MinLengthWithBlankNullIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createMinLengthWithBlankNullIndicatorAdapter() {
        if (minLengthWithBlankNullIndicatorItemProvider == null) {
            minLengthWithBlankNullIndicatorItemProvider = new MinLengthWithBlankNullIndicatorItemProvider(this);
        }

        return minLengthWithBlankNullIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.MaxLengthIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected MaxLengthIndicatorItemProvider maxLengthIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.MaxLengthIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createMaxLengthIndicatorAdapter() {
        if (maxLengthIndicatorItemProvider == null) {
            maxLengthIndicatorItemProvider = new MaxLengthIndicatorItemProvider(this);
        }

        return maxLengthIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.MaxLengthWithNullIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected MaxLengthWithNullIndicatorItemProvider maxLengthWithNullIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.MaxLengthWithNullIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createMaxLengthWithNullIndicatorAdapter() {
        if (maxLengthWithNullIndicatorItemProvider == null) {
            maxLengthWithNullIndicatorItemProvider = new MaxLengthWithNullIndicatorItemProvider(this);
        }

        return maxLengthWithNullIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.MaxLengthWithBlankIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected MaxLengthWithBlankIndicatorItemProvider maxLengthWithBlankIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.MaxLengthWithBlankIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createMaxLengthWithBlankIndicatorAdapter() {
        if (maxLengthWithBlankIndicatorItemProvider == null) {
            maxLengthWithBlankIndicatorItemProvider = new MaxLengthWithBlankIndicatorItemProvider(this);
        }

        return maxLengthWithBlankIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.MaxLengthWithBlankNullIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected MaxLengthWithBlankNullIndicatorItemProvider maxLengthWithBlankNullIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.MaxLengthWithBlankNullIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createMaxLengthWithBlankNullIndicatorAdapter() {
        if (maxLengthWithBlankNullIndicatorItemProvider == null) {
            maxLengthWithBlankNullIndicatorItemProvider = new MaxLengthWithBlankNullIndicatorItemProvider(this);
        }

        return maxLengthWithBlankNullIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.AverageLengthIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected AverageLengthIndicatorItemProvider averageLengthIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.AverageLengthIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createAverageLengthIndicatorAdapter() {
        if (averageLengthIndicatorItemProvider == null) {
            averageLengthIndicatorItemProvider = new AverageLengthIndicatorItemProvider(this);
        }

        return averageLengthIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.AvgLengthWithNullIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected AvgLengthWithNullIndicatorItemProvider avgLengthWithNullIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.AvgLengthWithNullIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createAvgLengthWithNullIndicatorAdapter() {
        if (avgLengthWithNullIndicatorItemProvider == null) {
            avgLengthWithNullIndicatorItemProvider = new AvgLengthWithNullIndicatorItemProvider(this);
        }

        return avgLengthWithNullIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.AvgLengthWithBlankIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected AvgLengthWithBlankIndicatorItemProvider avgLengthWithBlankIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.AvgLengthWithBlankIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createAvgLengthWithBlankIndicatorAdapter() {
        if (avgLengthWithBlankIndicatorItemProvider == null) {
            avgLengthWithBlankIndicatorItemProvider = new AvgLengthWithBlankIndicatorItemProvider(this);
        }

        return avgLengthWithBlankIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.AvgLengthWithBlankNullIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected AvgLengthWithBlankNullIndicatorItemProvider avgLengthWithBlankNullIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.AvgLengthWithBlankNullIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createAvgLengthWithBlankNullIndicatorAdapter() {
        if (avgLengthWithBlankNullIndicatorItemProvider == null) {
            avgLengthWithBlankNullIndicatorItemProvider = new AvgLengthWithBlankNullIndicatorItemProvider(this);
        }

        return avgLengthWithBlankNullIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.LengthIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected LengthIndicatorItemProvider lengthIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.LengthIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createLengthIndicatorAdapter() {
        if (lengthIndicatorItemProvider == null) {
            lengthIndicatorItemProvider = new LengthIndicatorItemProvider(this);
        }

        return lengthIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.TextParameters} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected TextParametersItemProvider textParametersItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.TextParameters}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createTextParametersAdapter() {
        if (textParametersItemProvider == null) {
            textParametersItemProvider = new TextParametersItemProvider(this);
        }

        return textParametersItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.LowerQuartileIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected LowerQuartileIndicatorItemProvider lowerQuartileIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.LowerQuartileIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createLowerQuartileIndicatorAdapter() {
        if (lowerQuartileIndicatorItemProvider == null) {
            lowerQuartileIndicatorItemProvider = new LowerQuartileIndicatorItemProvider(this);
        }

        return lowerQuartileIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.UpperQuartileIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected UpperQuartileIndicatorItemProvider upperQuartileIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.UpperQuartileIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createUpperQuartileIndicatorAdapter() {
        if (upperQuartileIndicatorItemProvider == null) {
            upperQuartileIndicatorItemProvider = new UpperQuartileIndicatorItemProvider(this);
        }

        return upperQuartileIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.CountsIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected CountsIndicatorItemProvider countsIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.CountsIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createCountsIndicatorAdapter() {
        if (countsIndicatorItemProvider == null) {
            countsIndicatorItemProvider = new CountsIndicatorItemProvider(this);
        }

        return countsIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.DateParameters} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected DateParametersItemProvider dateParametersItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.DateParameters}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createDateParametersAdapter() {
        if (dateParametersItemProvider == null) {
            dateParametersItemProvider = new DateParametersItemProvider(this);
        }

        return dateParametersItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.SqlPatternMatchingIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected SqlPatternMatchingIndicatorItemProvider sqlPatternMatchingIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.SqlPatternMatchingIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createSqlPatternMatchingIndicatorAdapter() {
        if (sqlPatternMatchingIndicatorItemProvider == null) {
            sqlPatternMatchingIndicatorItemProvider = new SqlPatternMatchingIndicatorItemProvider(this);
        }

        return sqlPatternMatchingIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.RegexpMatchingIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected RegexpMatchingIndicatorItemProvider regexpMatchingIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.RegexpMatchingIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createRegexpMatchingIndicatorAdapter() {
        if (regexpMatchingIndicatorItemProvider == null) {
            regexpMatchingIndicatorItemProvider = new RegexpMatchingIndicatorItemProvider(this);
        }

        return regexpMatchingIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.LowFrequencyIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected LowFrequencyIndicatorItemProvider lowFrequencyIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.LowFrequencyIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createLowFrequencyIndicatorAdapter() {
        if (lowFrequencyIndicatorItemProvider == null) {
            lowFrequencyIndicatorItemProvider = new LowFrequencyIndicatorItemProvider(this);
        }

        return lowFrequencyIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.PatternFreqIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected PatternFreqIndicatorItemProvider patternFreqIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.PatternFreqIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createPatternFreqIndicatorAdapter() {
        if (patternFreqIndicatorItemProvider == null) {
            patternFreqIndicatorItemProvider = new PatternFreqIndicatorItemProvider(this);
        }

        return patternFreqIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.PatternLowFreqIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected PatternLowFreqIndicatorItemProvider patternLowFreqIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.PatternLowFreqIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createPatternLowFreqIndicatorAdapter() {
        if (patternLowFreqIndicatorItemProvider == null) {
            patternLowFreqIndicatorItemProvider = new PatternLowFreqIndicatorItemProvider(this);
        }

        return patternLowFreqIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.DefValueCountIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected DefValueCountIndicatorItemProvider defValueCountIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.DefValueCountIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createDefValueCountIndicatorAdapter() {
        if (defValueCountIndicatorItemProvider == null) {
            defValueCountIndicatorItemProvider = new DefValueCountIndicatorItemProvider(this);
        }

        return defValueCountIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.SoundexFreqIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected SoundexFreqIndicatorItemProvider soundexFreqIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.SoundexFreqIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createSoundexFreqIndicatorAdapter() {
        if (soundexFreqIndicatorItemProvider == null) {
            soundexFreqIndicatorItemProvider = new SoundexFreqIndicatorItemProvider(this);
        }

        return soundexFreqIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.SoundexLowFreqIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected SoundexLowFreqIndicatorItemProvider soundexLowFreqIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.SoundexLowFreqIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createSoundexLowFreqIndicatorAdapter() {
        if (soundexLowFreqIndicatorItemProvider == null) {
            soundexLowFreqIndicatorItemProvider = new SoundexLowFreqIndicatorItemProvider(this);
        }

        return soundexLowFreqIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.DatePatternFreqIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected DatePatternFreqIndicatorItemProvider datePatternFreqIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.DatePatternFreqIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createDatePatternFreqIndicatorAdapter() {
        if (datePatternFreqIndicatorItemProvider == null) {
            datePatternFreqIndicatorItemProvider = new DatePatternFreqIndicatorItemProvider(this);
        }

        return datePatternFreqIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.DateFrequencyIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected DateFrequencyIndicatorItemProvider dateFrequencyIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.DateFrequencyIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createDateFrequencyIndicatorAdapter() {
        if (dateFrequencyIndicatorItemProvider == null) {
            dateFrequencyIndicatorItemProvider = new DateFrequencyIndicatorItemProvider(this);
        }

        return dateFrequencyIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.WeekFrequencyIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected WeekFrequencyIndicatorItemProvider weekFrequencyIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.WeekFrequencyIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createWeekFrequencyIndicatorAdapter() {
        if (weekFrequencyIndicatorItemProvider == null) {
            weekFrequencyIndicatorItemProvider = new WeekFrequencyIndicatorItemProvider(this);
        }

        return weekFrequencyIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.MonthFrequencyIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected MonthFrequencyIndicatorItemProvider monthFrequencyIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.MonthFrequencyIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createMonthFrequencyIndicatorAdapter() {
        if (monthFrequencyIndicatorItemProvider == null) {
            monthFrequencyIndicatorItemProvider = new MonthFrequencyIndicatorItemProvider(this);
        }

        return monthFrequencyIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.QuarterFrequencyIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected QuarterFrequencyIndicatorItemProvider quarterFrequencyIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.QuarterFrequencyIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createQuarterFrequencyIndicatorAdapter() {
        if (quarterFrequencyIndicatorItemProvider == null) {
            quarterFrequencyIndicatorItemProvider = new QuarterFrequencyIndicatorItemProvider(this);
        }

        return quarterFrequencyIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.YearFrequencyIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected YearFrequencyIndicatorItemProvider yearFrequencyIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.YearFrequencyIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createYearFrequencyIndicatorAdapter() {
        if (yearFrequencyIndicatorItemProvider == null) {
            yearFrequencyIndicatorItemProvider = new YearFrequencyIndicatorItemProvider(this);
        }

        return yearFrequencyIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.BinFrequencyIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected BinFrequencyIndicatorItemProvider binFrequencyIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.BinFrequencyIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createBinFrequencyIndicatorAdapter() {
        if (binFrequencyIndicatorItemProvider == null) {
            binFrequencyIndicatorItemProvider = new BinFrequencyIndicatorItemProvider(this);
        }

        return binFrequencyIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.DateLowFrequencyIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected DateLowFrequencyIndicatorItemProvider dateLowFrequencyIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.DateLowFrequencyIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createDateLowFrequencyIndicatorAdapter() {
        if (dateLowFrequencyIndicatorItemProvider == null) {
            dateLowFrequencyIndicatorItemProvider = new DateLowFrequencyIndicatorItemProvider(this);
        }

        return dateLowFrequencyIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.WeekLowFrequencyIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected WeekLowFrequencyIndicatorItemProvider weekLowFrequencyIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.WeekLowFrequencyIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createWeekLowFrequencyIndicatorAdapter() {
        if (weekLowFrequencyIndicatorItemProvider == null) {
            weekLowFrequencyIndicatorItemProvider = new WeekLowFrequencyIndicatorItemProvider(this);
        }

        return weekLowFrequencyIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.MonthLowFrequencyIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected MonthLowFrequencyIndicatorItemProvider monthLowFrequencyIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.MonthLowFrequencyIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createMonthLowFrequencyIndicatorAdapter() {
        if (monthLowFrequencyIndicatorItemProvider == null) {
            monthLowFrequencyIndicatorItemProvider = new MonthLowFrequencyIndicatorItemProvider(this);
        }

        return monthLowFrequencyIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.QuarterLowFrequencyIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected QuarterLowFrequencyIndicatorItemProvider quarterLowFrequencyIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.QuarterLowFrequencyIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createQuarterLowFrequencyIndicatorAdapter() {
        if (quarterLowFrequencyIndicatorItemProvider == null) {
            quarterLowFrequencyIndicatorItemProvider = new QuarterLowFrequencyIndicatorItemProvider(this);
        }

        return quarterLowFrequencyIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.YearLowFrequencyIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected YearLowFrequencyIndicatorItemProvider yearLowFrequencyIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.YearLowFrequencyIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createYearLowFrequencyIndicatorAdapter() {
        if (yearLowFrequencyIndicatorItemProvider == null) {
            yearLowFrequencyIndicatorItemProvider = new YearLowFrequencyIndicatorItemProvider(this);
        }

        return yearLowFrequencyIndicatorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.talend.dataquality.indicators.BinLowFrequencyIndicator} instances.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected BinLowFrequencyIndicatorItemProvider binLowFrequencyIndicatorItemProvider;

    /**
     * This creates an adapter for a {@link org.talend.dataquality.indicators.BinLowFrequencyIndicator}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter createBinLowFrequencyIndicatorAdapter() {
        if (binLowFrequencyIndicatorItemProvider == null) {
            binLowFrequencyIndicatorItemProvider = new BinLowFrequencyIndicatorItemProvider(this);
        }

        return binLowFrequencyIndicatorItemProvider;
    }

    /**
     * This returns the root adapter factory that contains this factory.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public ComposeableAdapterFactory getRootAdapterFactory() {
        return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
    }

    /**
     * This sets the composed adapter factory that contains this factory.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
        this.parentAdapterFactory = parentAdapterFactory;
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public boolean isFactoryForType(Object type) {
        return supportedTypes.contains(type) || super.isFactoryForType(type);
    }

    /**
     * This implementation substitutes the factory itself as the key for the adapter.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Adapter adapt(Notifier notifier, Object type) {
        return super.adapt(notifier, this);
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    public Object adapt(Object object, Object type) {
        if (isFactoryForType(type)) {
            Object adapter = super.adapt(object, type);
            if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
                return adapter;
            }
        }

        return null;
    }

    /**
     * This adds a listener.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public void addListener(INotifyChangedListener notifyChangedListener) {
        changeNotifier.addListener(notifyChangedListener);
    }

    /**
     * This removes a listener.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public void removeListener(INotifyChangedListener notifyChangedListener) {
        changeNotifier.removeListener(notifyChangedListener);
    }

    /**
     * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public void fireNotifyChanged(Notification notification) {
        changeNotifier.fireNotifyChanged(notification);

        if (parentAdapterFactory != null) {
            parentAdapterFactory.fireNotifyChanged(notification);
        }
    }

    /**
     * This disposes all of the item providers created by this factory. 
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public void dispose() {
        if (indicatorItemProvider != null) indicatorItemProvider.dispose();
        if (rowCountIndicatorItemProvider != null) rowCountIndicatorItemProvider.dispose();
        if (meanIndicatorItemProvider != null) meanIndicatorItemProvider.dispose();
        if (sumIndicatorItemProvider != null) sumIndicatorItemProvider.dispose();
        if (compositeIndicatorItemProvider != null) compositeIndicatorItemProvider.dispose();
        if (rangeIndicatorItemProvider != null) rangeIndicatorItemProvider.dispose();
        if (boxIndicatorItemProvider != null) boxIndicatorItemProvider.dispose();
        if (frequencyIndicatorItemProvider != null) frequencyIndicatorItemProvider.dispose();
        if (blankCountIndicatorItemProvider != null) blankCountIndicatorItemProvider.dispose();
        if (indicatorParametersItemProvider != null) indicatorParametersItemProvider.dispose();
        if (medianIndicatorItemProvider != null) medianIndicatorItemProvider.dispose();
        if (valueIndicatorItemProvider != null) valueIndicatorItemProvider.dispose();
        if (minValueIndicatorItemProvider != null) minValueIndicatorItemProvider.dispose();
        if (maxValueIndicatorItemProvider != null) maxValueIndicatorItemProvider.dispose();
        if (modeIndicatorItemProvider != null) modeIndicatorItemProvider.dispose();
        if (nullCountIndicatorItemProvider != null) nullCountIndicatorItemProvider.dispose();
        if (distinctCountIndicatorItemProvider != null) distinctCountIndicatorItemProvider.dispose();
        if (uniqueCountIndicatorItemProvider != null) uniqueCountIndicatorItemProvider.dispose();
        if (duplicateCountIndicatorItemProvider != null) duplicateCountIndicatorItemProvider.dispose();
        if (iqrIndicatorItemProvider != null) iqrIndicatorItemProvider.dispose();
        if (textIndicatorItemProvider != null) textIndicatorItemProvider.dispose();
        if (minLengthIndicatorItemProvider != null) minLengthIndicatorItemProvider.dispose();
        if (minLengthWithNullIndicatorItemProvider != null) minLengthWithNullIndicatorItemProvider.dispose();
        if (minLengthWithBlankIndicatorItemProvider != null) minLengthWithBlankIndicatorItemProvider.dispose();
        if (minLengthWithBlankNullIndicatorItemProvider != null) minLengthWithBlankNullIndicatorItemProvider.dispose();
        if (maxLengthIndicatorItemProvider != null) maxLengthIndicatorItemProvider.dispose();
        if (maxLengthWithNullIndicatorItemProvider != null) maxLengthWithNullIndicatorItemProvider.dispose();
        if (maxLengthWithBlankIndicatorItemProvider != null) maxLengthWithBlankIndicatorItemProvider.dispose();
        if (maxLengthWithBlankNullIndicatorItemProvider != null) maxLengthWithBlankNullIndicatorItemProvider.dispose();
        if (averageLengthIndicatorItemProvider != null) averageLengthIndicatorItemProvider.dispose();
        if (avgLengthWithNullIndicatorItemProvider != null) avgLengthWithNullIndicatorItemProvider.dispose();
        if (avgLengthWithBlankIndicatorItemProvider != null) avgLengthWithBlankIndicatorItemProvider.dispose();
        if (avgLengthWithBlankNullIndicatorItemProvider != null) avgLengthWithBlankNullIndicatorItemProvider.dispose();
        if (lengthIndicatorItemProvider != null) lengthIndicatorItemProvider.dispose();
        if (textParametersItemProvider != null) textParametersItemProvider.dispose();
        if (lowerQuartileIndicatorItemProvider != null) lowerQuartileIndicatorItemProvider.dispose();
        if (upperQuartileIndicatorItemProvider != null) upperQuartileIndicatorItemProvider.dispose();
        if (countsIndicatorItemProvider != null) countsIndicatorItemProvider.dispose();
        if (dateParametersItemProvider != null) dateParametersItemProvider.dispose();
        if (sqlPatternMatchingIndicatorItemProvider != null) sqlPatternMatchingIndicatorItemProvider.dispose();
        if (regexpMatchingIndicatorItemProvider != null) regexpMatchingIndicatorItemProvider.dispose();
        if (lowFrequencyIndicatorItemProvider != null) lowFrequencyIndicatorItemProvider.dispose();
        if (patternFreqIndicatorItemProvider != null) patternFreqIndicatorItemProvider.dispose();
        if (patternLowFreqIndicatorItemProvider != null) patternLowFreqIndicatorItemProvider.dispose();
        if (defValueCountIndicatorItemProvider != null) defValueCountIndicatorItemProvider.dispose();
        if (soundexFreqIndicatorItemProvider != null) soundexFreqIndicatorItemProvider.dispose();
        if (soundexLowFreqIndicatorItemProvider != null) soundexLowFreqIndicatorItemProvider.dispose();
        if (datePatternFreqIndicatorItemProvider != null) datePatternFreqIndicatorItemProvider.dispose();
        if (dateFrequencyIndicatorItemProvider != null) dateFrequencyIndicatorItemProvider.dispose();
        if (weekFrequencyIndicatorItemProvider != null) weekFrequencyIndicatorItemProvider.dispose();
        if (monthFrequencyIndicatorItemProvider != null) monthFrequencyIndicatorItemProvider.dispose();
        if (quarterFrequencyIndicatorItemProvider != null) quarterFrequencyIndicatorItemProvider.dispose();
        if (yearFrequencyIndicatorItemProvider != null) yearFrequencyIndicatorItemProvider.dispose();
        if (binFrequencyIndicatorItemProvider != null) binFrequencyIndicatorItemProvider.dispose();
        if (dateLowFrequencyIndicatorItemProvider != null) dateLowFrequencyIndicatorItemProvider.dispose();
        if (weekLowFrequencyIndicatorItemProvider != null) weekLowFrequencyIndicatorItemProvider.dispose();
        if (monthLowFrequencyIndicatorItemProvider != null) monthLowFrequencyIndicatorItemProvider.dispose();
        if (quarterLowFrequencyIndicatorItemProvider != null) quarterLowFrequencyIndicatorItemProvider.dispose();
        if (yearLowFrequencyIndicatorItemProvider != null) yearLowFrequencyIndicatorItemProvider.dispose();
        if (binLowFrequencyIndicatorItemProvider != null) binLowFrequencyIndicatorItemProvider.dispose();
    }

}
